3
תגובות
יש לי בעיה שחוזרת על עצמה כל הזמן, כבר העליתי אותה פה בעבר ולא נמצא פתרון. חייבת להיות איזושהי דרך לטפל בה.
הבעיה היא אבטחה. לא פעם אני נתקל בסירוב של השרת לאפשר לי לבצע עדכון מסויים בDB. למשל בעבר דיברתי על כך שהשרת לא אפשר לי לעדכן קישורים בDB, עכשיו הבעיה היא שהשרת לא נותן לי לעדכן TEXTAREA שיש בו אך ורק מילים. אז למה זה לא עובד!!!!!
הקוד הנ"ל, הוא הדף שאליו נשלח המידע מהטופס:
<?php
include "../../../connect_to_db.php";

$msg_place = $_POST['msg_place'];
  $msg_place = trim(mysql_real_escape_string($msg_place));
$massage = $_POST['massage'];
  $massage = trim(mysql_real_escape_string($massage));
$table = $_POST['table'];
  $table = trim(mysql_real_escape_string($table));
$collom = $_POST['collom'];
  $collom = trim(mysql_real_escape_string($collom));
$id = $_POST['id'];
  $id = trim(mysql_real_escape_string($id));


function update_top_massage_area($massage,$msg_place,$table,$collom,$id){
  $query=("UPDATE $table SET $msg_place='$massage' WHERE $collom='$id'");
  mysql_query("SET NAMES 'utf8'");
  $result=mysql_query($query);
  if(!$result)
  return false;
  else
  return true;
}

$update_result = update_top_massage_area($massage,$msg_place,$table,$collom,$id);

if($update_result == true)

$_SESSION['update_'.$msg_place] = 'OK';
header('Location:'.$last_page);

?>

אני מתחנן לעזרה...

3 תשובות

avatar ענה pol292 ב 18 לפברואר 2012 #

אני יגיד לך דבר אחד שקרה לי , בשרת אחד הפונקציה mysql_real_escape_string פשוט גרמה לטקסט להיות NULL.
והצעה קטנה לשיפור במקום לצור משתמש לכל קלט פשוט תציב את התוצאה באותו קלט לדוגמה:

$_POST['table'] = trim(mysql_real_escape_string($table));

ככה הביצוע היה יותר מהיר.

avatar ענה Aviway ב 18 לפברואר 2012 #

יש התקדמות בנושא, לא הבנתי איך אבל נגיד(בעקבות שיפור הקוד לפי העצה של pol292).
עכשיו כן אפשר לעשות עדכון אבל אי אפשר להעתיק מידע לתוך הTEXTAREA (כמובן שבעורך תוכן כלשהו).
יש רעיונות?

avatar ענה Aviway ב 18 לפברואר 2012 #

מספיק שאני לוחץ פעם אחת ENTER בעורך טקסט, והוא כבר מראה לי את הודעת הFORBIDDEN ולא נותן לי לעדכן!